package com.wyd.strategy.demo1;

/**
 * @author Yudi Wang
 * @date 2022/1/5 16:35
 */
public abstract class Duck {
    protected void display() {
        System.out.println("duck");
    }

    protected void quack() {
        System.out.println("quack");
    }

    /**
     * 新增 fly 方法，该方法将影响所有 Duck 子类
     * 不同的 Duck 子类具有不同的实现方式，而又存在相同的实现方式
     * 如下，在超类中直接添加 fly 方法，将导致所有子类都要重写，并且实现代码存在重复
     */
    protected void fly() {
        System.out.println("fly");
    }
}
